[INFO] fetching crate helixiser 0.4.2...
[INFO] building helixiser-0.4.2 against master#881c1ac408d93bb7adaa3a51dabab9266e82eee8 for issue-85264
[INFO] extracting crate helixiser 0.4.2 into /workspace/builds/worker-12/source
[INFO] validating manifest of crates.io crate helixiser 0.4.2 on toolchain 881c1ac408d93bb7adaa3a51dabab9266e82eee8
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate helixiser 0.4.2
[INFO] finished tweaking crates.io crate helixiser 0.4.2
[INFO] tweaked toml for crates.io crate helixiser 0.4.2 written to /workspace/builds/worker-12/source/Cargo.toml
[INFO] crate crates.io crate helixiser 0.4.2 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded rustfft v3.0.1
[INFO] [stderr]   Downloaded transpose v0.1.0
[INFO] [stderr]   Downloaded bytemuck v1.4.0
[INFO] [stderr]   Downloaded image v0.23.9
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 33167c50979079cee751c5c89ac0d74019e299cb091f1ea7019b9a6a4ff4588c
[INFO] running `Command { std: "docker" "start" "-a" "33167c50979079cee751c5c89ac0d74019e299cb091f1ea7019b9a6a4ff4588c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "33167c50979079cee751c5c89ac0d74019e299cb091f1ea7019b9a6a4ff4588c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "33167c50979079cee751c5c89ac0d74019e299cb091f1ea7019b9a6a4ff4588c", kill_on_drop: false }`
[INFO] [stdout] 33167c50979079cee751c5c89ac0d74019e299cb091f1ea7019b9a6a4ff4588c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a441af17dfb93a922ec83143152229b9ffc4a35b69d798af8bbe5b14125f77e1
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "a441af17dfb93a922ec83143152229b9ffc4a35b69d798af8bbe5b14125f77e1", kill_on_drop: false }`
[INFO] [stderr]    Compiling autocfg v1.0.1
[INFO] [stderr]    Compiling cfg-if v0.1.10
[INFO] [stderr]    Compiling maybe-uninit v2.0.0
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling byteorder v1.3.4
[INFO] [stderr]    Compiling libc v0.2.76
[INFO] [stderr]    Compiling rayon-core v1.8.0
[INFO] [stderr]    Compiling scopeguard v1.1.0
[INFO] [stderr]    Compiling adler32 v1.2.0
[INFO] [stderr]    Compiling crc32fast v1.2.0
[INFO] [stderr]    Compiling bitflags v1.2.1
[INFO] [stderr]    Compiling either v1.6.0
[INFO] [stderr]    Compiling ndarray v0.13.1
[INFO] [stderr]    Compiling bytemuck v1.4.0
[INFO] [stderr]    Compiling strength_reduce v0.2.3
[INFO] [stderr]    Compiling assert_approx_eq v1.1.0
[INFO] [stderr]    Compiling open v1.4.0
[INFO] [stderr]    Compiling miniz_oxide v0.3.7
[INFO] [stderr]    Compiling num-traits v0.2.12
[INFO] [stderr]    Compiling num-integer v0.1.43
[INFO] [stderr]    Compiling crossbeam-utils v0.7.2
[INFO] [stderr]    Compiling memoffset v0.5.5
[INFO] [stderr]    Compiling crossbeam-epoch v0.8.2
[INFO] [stderr]    Compiling num-bigint v0.3.0
[INFO] [stderr]    Compiling num-complex v0.2.4
[INFO] [stderr]    Compiling num-rational v0.3.0
[INFO] [stderr]    Compiling rayon v1.4.0
[INFO] [stderr]    Compiling num-iter v0.1.41
[INFO] [stderr]    Compiling deflate v0.8.6
[INFO] [stderr]    Compiling tiff v0.5.0
[INFO] [stderr]    Compiling num_cpus v1.13.0
[INFO] [stderr]    Compiling crossbeam-channel v0.4.4
[INFO] [stderr]    Compiling png v0.16.7
[INFO] [stderr]    Compiling crossbeam-deque v0.7.3
[INFO] [stderr]    Compiling num-complex v0.3.0
[INFO] [stderr]    Compiling rustfft v3.0.1
[INFO] [stderr]    Compiling num v0.3.0
[INFO] [stderr]    Compiling jpeg-decoder v0.1.20
[INFO] [stderr]    Compiling image v0.23.9
[INFO] [stderr]    Compiling helixiser v0.4.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `traits::Pow`
[INFO] [stdout]   --> src/diffraction_analytic.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num:: {Complex, complex::Complex64, traits::Pow };
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayView1`, `ArrayView`, `ViewRepr`
[INFO] [stdout]   --> src/fft_2D.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::{Array2, ArrayViewMut1, ArrayView1, ArrayView, Array, ViewRepr};
[INFO] [stdout]    |                                      ^^^^^^^^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/diffraction_simulator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_pix`
[INFO] [stdout]   --> src/diffraction_analytic.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let num_pix: usize = (raster_size * raster_size) as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_pix`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill`
[INFO] [stdout]   --> src/fft_2D.rs:91:57
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn repetition_pad_image<T: Copy> (image: Array2<T>, fill: T) ->  Array2<T> {
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_fill`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `val` is never read
[INFO] [stdout]   --> src/diffraction_simulator.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut val:f64 = 0.;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/diffraction_simulator.rs:83:69
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn draw_border_subunit(image: &mut Array2<f64>, x: usize, z: usize, size: f64){
[INFO] [stdout]    |                                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut row = image.row_mut(row_num);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut column = image.column_mut(col_num);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut image_width: f64 = ( largest_radius[0] + largest_radius[1] ).ceil() * 2f64 + 4.;
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut image_height: f64 = ( pitch_lengths * largest_pitch ).ceil();
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `fft_2D` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub mod fft_2D;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn J0(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn J1(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn J0a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn J0b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn J1a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn J1b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nextBessel` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to snake case: `next_bessel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_one` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:35
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_two` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:54
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Jn` should have a snake case name
[INFO] [stdout]    --> src/bessel_utils.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn Jn(n: u64, x: f64) -> f64 {
[INFO] [stdout]     |        ^^ help: convert the identifier to snake case: `jn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ufac` should have a snake case name
[INFO] [stdout]   --> src/diffraction_analytic.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut Ufac: Array1<Complex64> = Array::zeros(raster_size as usize);
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case (notice the capitalization): `ufac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_1D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn FFT_1D(mut slice: ArrayViewMut1<Complex64>, length: usize){
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case: `fft_1_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_2D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn FFT_2D(mut image: Array2<Complex64>) -> Array2<Complex64>{
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFTshift` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn FFTshift(image: &mut Array2<Complex64>){
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `fftshift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 30 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `array_to_luminance`
[INFO] [stdout]  --> src/main.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use helixiser::utilities::{adjust_contrast, array_to_luminance, luminance_to_rgba};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FFT_2D`, `pad_image`
[INFO] [stdout]  --> src/main.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use helixiser::fft_2D::{ FFT_2D, pad_image };
[INFO] [stdout]   |                          ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projection_from_helix_family`
[INFO] [stdout]  --> src/main.rs:4:40
[INFO] [stdout]   |
[INFO] [stdout] 4 | use helixiser::diffraction_simulator::{projection_from_helix_family};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `open::that`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use open::that;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `helixiser_web_link`
[INFO] [stdout]  --> src/main.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use helixiser::export::{ helixiser_web_link };
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Complex64`
[INFO] [stdout]   --> src/main.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rustfft::num_complex::{Complex64};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustfft::num_traits::Zero`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rustfft::num_traits::Zero;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Pow`
[INFO] [stdout]   --> src/main.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use num:: { traits::Pow };
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use image::GenericImageView;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2`, `Array`
[INFO] [stdout]   --> src/main.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | use ndarray::{Array, Array2};
[INFO] [stdout]    |               ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "a441af17dfb93a922ec83143152229b9ffc4a35b69d798af8bbe5b14125f77e1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a441af17dfb93a922ec83143152229b9ffc4a35b69d798af8bbe5b14125f77e1", kill_on_drop: false }`
[INFO] [stdout] a441af17dfb93a922ec83143152229b9ffc4a35b69d798af8bbe5b14125f77e1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-12/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:20528e8c29e4536546f0102ce88568b16ea7538393a33fcca951030f7af10457" "/opt/rustwide/cargo-home/bin/cargo" "+881c1ac408d93bb7adaa3a51dabab9266e82eee8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 25490d6967a06ff831e67350ad6ae1331e48b47a328ee2d3a2c9752589c819c9
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "25490d6967a06ff831e67350ad6ae1331e48b47a328ee2d3a2c9752589c819c9", kill_on_drop: false }`
[INFO] [stdout] warning: unused import: `traits::Pow`
[INFO] [stdout]   --> src/diffraction_analytic.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num:: {Complex, complex::Complex64, traits::Pow };
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayView1`, `ArrayView`, `ViewRepr`
[INFO] [stdout]   --> src/fft_2D.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::{Array2, ArrayViewMut1, ArrayView1, ArrayView, Array, ViewRepr};
[INFO] [stdout]    |                                      ^^^^^^^^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/diffraction_simulator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_pix`
[INFO] [stdout]   --> src/diffraction_analytic.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let num_pix: usize = (raster_size * raster_size) as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_pix`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill`
[INFO] [stdout]   --> src/fft_2D.rs:91:57
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn repetition_pad_image<T: Copy> (image: Array2<T>, fill: T) ->  Array2<T> {
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_fill`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `val` is never read
[INFO] [stdout]   --> src/diffraction_simulator.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut val:f64 = 0.;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/diffraction_simulator.rs:83:69
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn draw_border_subunit(image: &mut Array2<f64>, x: usize, z: usize, size: f64){
[INFO] [stdout]    |                                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut row = image.row_mut(row_num);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut column = image.column_mut(col_num);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut image_width: f64 = ( largest_radius[0] + largest_radius[1] ).ceil() * 2f64 + 4.;
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut image_height: f64 = ( pitch_lengths * largest_pitch ).ceil();
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `fft_2D` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub mod fft_2D;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn J0(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn J1(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn J0a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn J0b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn J1a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn J1b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nextBessel` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to snake case: `next_bessel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_one` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:35
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_two` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:54
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Jn` should have a snake case name
[INFO] [stdout]    --> src/bessel_utils.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn Jn(n: u64, x: f64) -> f64 {
[INFO] [stdout]     |        ^^ help: convert the identifier to snake case: `jn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ufac` should have a snake case name
[INFO] [stdout]   --> src/diffraction_analytic.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut Ufac: Array1<Complex64> = Array::zeros(raster_size as usize);
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case (notice the capitalization): `ufac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_1D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn FFT_1D(mut slice: ArrayViewMut1<Complex64>, length: usize){
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case: `fft_1_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_2D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn FFT_2D(mut image: Array2<Complex64>) -> Array2<Complex64>{
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFTshift` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn FFTshift(image: &mut Array2<Complex64>){
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `fftshift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 30 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling helixiser v0.4.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `array_to_luminance`
[INFO] [stdout]  --> src/main.rs:2:45
[INFO] [stdout]   |
[INFO] [stdout] 2 | use helixiser::utilities::{adjust_contrast, array_to_luminance, luminance_to_rgba};
[INFO] [stdout]   |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `FFT_2D`, `pad_image`
[INFO] [stdout]  --> src/main.rs:3:26
[INFO] [stdout]   |
[INFO] [stdout] 3 | use helixiser::fft_2D::{ FFT_2D, pad_image };
[INFO] [stdout]   |                          ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `projection_from_helix_family`
[INFO] [stdout]  --> src/main.rs:4:40
[INFO] [stdout]   |
[INFO] [stdout] 4 | use helixiser::diffraction_simulator::{projection_from_helix_family};
[INFO] [stdout]   |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `open::that`
[INFO] [stdout]  --> src/main.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use open::that;
[INFO] [stdout]   |     ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `helixiser_web_link`
[INFO] [stdout]  --> src/main.rs:8:26
[INFO] [stdout]   |
[INFO] [stdout] 8 | use helixiser::export::{ helixiser_web_link };
[INFO] [stdout]   |                          ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Complex64`
[INFO] [stdout]   --> src/main.rs:10:28
[INFO] [stdout]    |
[INFO] [stdout] 10 | use rustfft::num_complex::{Complex64};
[INFO] [stdout]    |                            ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rustfft::num_traits::Zero`
[INFO] [stdout]   --> src/main.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use rustfft::num_traits::Zero;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Pow`
[INFO] [stdout]   --> src/main.rs:13:13
[INFO] [stdout]    |
[INFO] [stdout] 13 | use num:: { traits::Pow };
[INFO] [stdout]    |             ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]   --> src/main.rs:17:17
[INFO] [stdout]    |
[INFO] [stdout] 17 | use std::time::{Duration, Instant};
[INFO] [stdout]    |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `image::GenericImageView`
[INFO] [stdout]   --> src/main.rs:18:5
[INFO] [stdout]    |
[INFO] [stdout] 18 | use image::GenericImageView;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Array2`, `Array`
[INFO] [stdout]   --> src/main.rs:20:15
[INFO] [stdout]    |
[INFO] [stdout] 20 | use ndarray::{Array, Array2};
[INFO] [stdout]    |               ^^^^^  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `traits::Pow`
[INFO] [stdout]   --> src/diffraction_analytic.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 | use num:: {Complex, complex::Complex64, traits::Pow };
[INFO] [stdout]    |                                         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayView1`, `ArrayView`, `ViewRepr`
[INFO] [stdout]   --> src/fft_2D.rs:13:38
[INFO] [stdout]    |
[INFO] [stdout] 13 | use ndarray::{Array2, ArrayViewMut1, ArrayView1, ArrayView, Array, ViewRepr};
[INFO] [stdout]    |                                      ^^^^^^^^^^  ^^^^^^^^^         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::f64::consts::PI`
[INFO] [stdout]  --> src/diffraction_simulator.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use std::f64::consts::PI;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `max`
[INFO] [stdout]   --> src/utilities.rs:82:13
[INFO] [stdout]    |
[INFO] [stdout] 82 |         let max =  adjusted_data.iter().cloned().fold(0./0., f64::max);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_max`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `min`
[INFO] [stdout]   --> src/utilities.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let min =  adjusted_data.iter().cloned().fold(0./0., f64::min);
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_min`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `num_pix`
[INFO] [stdout]   --> src/diffraction_analytic.rs:43:9
[INFO] [stdout]    |
[INFO] [stdout] 43 |     let num_pix: usize = (raster_size * raster_size) as usize;
[INFO] [stdout]    |         ^^^^^^^ help: if this is intentional, prefix it with an underscore: `_num_pix`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `fill`
[INFO] [stdout]   --> src/fft_2D.rs:91:57
[INFO] [stdout]    |
[INFO] [stdout] 91 | pub fn repetition_pad_image<T: Copy> (image: Array2<T>, fill: T) ->  Array2<T> {
[INFO] [stdout]    |                                                         ^^^^ help: if this is intentional, prefix it with an underscore: `_fill`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: value assigned to `val` is never read
[INFO] [stdout]   --> src/diffraction_simulator.rs:63:17
[INFO] [stdout]    |
[INFO] [stdout] 63 |         let mut val:f64 = 0.;
[INFO] [stdout]    |                 ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_assignments)]` on by default
[INFO] [stdout]    = help: maybe it is overwritten before being read?
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `size`
[INFO] [stdout]   --> src/diffraction_simulator.rs:83:69
[INFO] [stdout]    |
[INFO] [stdout] 83 | fn draw_border_subunit(image: &mut Array2<f64>, x: usize, z: usize, size: f64){
[INFO] [stdout]    |                                                                     ^^^^ help: if this is intentional, prefix it with an underscore: `_size`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:36:13
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let mut row = image.row_mut(row_num);
[INFO] [stdout]    |             ----^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/fft_2D.rs:42:13
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let mut column = image.column_mut(col_num);
[INFO] [stdout]    |             ----^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:28:9
[INFO] [stdout]    |
[INFO] [stdout] 28 |     let mut image_width: f64 = ( largest_radius[0] + largest_radius[1] ).ceil() * 2f64 + 4.;
[INFO] [stdout]    |         ----^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/diffraction_simulator.rs:29:9
[INFO] [stdout]    |
[INFO] [stdout] 29 |     let mut image_height: f64 = ( pitch_lengths * largest_pitch ).ceil();
[INFO] [stdout]    |         ----^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: module `fft_2D` should have a snake case name
[INFO] [stdout]   --> src/lib.rs:13:9
[INFO] [stdout]    |
[INFO] [stdout] 13 | pub mod fft_2D;
[INFO] [stdout]    |         ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_snake_case)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:16:8
[INFO] [stdout]    |
[INFO] [stdout] 16 | pub fn J0(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:32:8
[INFO] [stdout]    |
[INFO] [stdout] 32 | pub fn J1(x: f64) -> f64 {
[INFO] [stdout]    |        ^^ help: convert the identifier to snake case: `j1`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:48:8
[INFO] [stdout]    |
[INFO] [stdout] 48 | pub fn J0a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J0b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 | pub fn J0b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j0b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1a` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:65:8
[INFO] [stdout]    |
[INFO] [stdout] 65 | pub fn J1a(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1a`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `J1b` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:74:8
[INFO] [stdout]    |
[INFO] [stdout] 74 | pub fn J1b(x: f64) -> f64 {
[INFO] [stdout]    |        ^^^ help: convert the identifier to snake case: `j1b`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `nextBessel` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:8
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |        ^^^^^^^^^^ help: convert the identifier to snake case: `next_bessel`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_one` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:35
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                   ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_one`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Jn_minus_two` should have a snake case name
[INFO] [stdout]   --> src/bessel_utils.rs:86:54
[INFO] [stdout]    |
[INFO] [stdout] 86 | pub fn nextBessel(n: u64, x: f64, Jn_minus_one: f64, Jn_minus_two: f64) -> f64 {
[INFO] [stdout]    |                                                      ^^^^^^^^^^^^ help: convert the identifier to snake case: `jn_minus_two`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `Jn` should have a snake case name
[INFO] [stdout]    --> src/bessel_utils.rs:127:8
[INFO] [stdout]     |
[INFO] [stdout] 127 | pub fn Jn(n: u64, x: f64) -> f64 {
[INFO] [stdout]     |        ^^ help: convert the identifier to snake case: `jn`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `Ufac` should have a snake case name
[INFO] [stdout]   --> src/diffraction_analytic.rs:63:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |     let mut Ufac: Array1<Complex64> = Array::zeros(raster_size as usize);
[INFO] [stdout]    |             ^^^^ help: convert the identifier to snake case (notice the capitalization): `ufac`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_1D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:18:4
[INFO] [stdout]    |
[INFO] [stdout] 18 | fn FFT_1D(mut slice: ArrayViewMut1<Complex64>, length: usize){
[INFO] [stdout]    |    ^^^^^^ help: convert the identifier to snake case: `fft_1_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFT_2D` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:30:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | pub fn FFT_2D(mut image: Array2<Complex64>) -> Array2<Complex64>{
[INFO] [stdout]    |        ^^^^^^ help: convert the identifier to snake case: `fft_2_d`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `FFTshift` should have a snake case name
[INFO] [stdout]   --> src/fft_2D.rs:53:4
[INFO] [stdout]    |
[INFO] [stdout] 53 | fn FFTshift(image: &mut Array2<Complex64>){
[INFO] [stdout]    |    ^^^^^^^^ help: convert the identifier to snake case: `fftshift`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_comparisons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:61:9
[INFO] [stdout]    |
[INFO] [stdout] 61 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:84:8
[INFO] [stdout]    |
[INFO] [stdout] 84 |     if (x >= 0) && (x < image.ncols()) &&
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: comparison is useless due to type limits
[INFO] [stdout]   --> src/diffraction_simulator.rs:85:9
[INFO] [stdout]    |
[INFO] [stdout] 85 |         (z >= 0) && (z < image.nrows()) {
[INFO] [stdout]    |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 32 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 2.96s
[INFO] running `Command { std: "docker" "inspect" "25490d6967a06ff831e67350ad6ae1331e48b47a328ee2d3a2c9752589c819c9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "25490d6967a06ff831e67350ad6ae1331e48b47a328ee2d3a2c9752589c819c9", kill_on_drop: false }`
[INFO] [stdout] 25490d6967a06ff831e67350ad6ae1331e48b47a328ee2d3a2c9752589c819c9
